# 字符串相关操作

# 将字符转换为Unicode编码
print(ord("A"))
# 将十进制数字转换为对应字符
print(chr(65))

print("-------------字符串-------------------")
c = '我和我的祖国'
print(len(c))
# \表示续行符
print("aaaaaa\
      bbbbbb")
# 字符串复制这样就会有3个abc
a = "abc"*3
print(a)
# print默认使用\n进行换行，但是我们可以通过end进行制定换行符
print("你大爷",end="！")
print("你大妈")
# 从控制台读取字符串
# myname=input("请输入你的名字")
# print(myname)
# 将数字转换成字符串
print(str(123e10))
# 提取字符串的字符
a = '我爱你中国，我爱你辽宁'
print(a[2-1])
print(a[-1])
# 字符串替换
a = a.replace("辽宁","天津")
print(a)

# 字符串切片 [起始偏移量 start：终止偏移量 end：步长 step]
# 切片操作时，起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围，也不会报错。起始偏移量小于 0 则会当做 0，终止偏移量大于“长度-1”会被当成-1。
print(a[0:5:2])
print(a[:]) # 取整个字符串
print(a[2:]) # 从第二个一直到结尾
print(a[:len(a)]) # 从开头一直到len(a)-1
print(a[::-1]) # 反向提取

# 字符串的split和join操作
a = "abc,def,hello,world"
a=a.split(",")
print(a)
b = ","
b = b.join(a)
print(b)
import time
# 拼接字符串建议是用join操作，这样操作的效率更高
time03 = time.time()   #起始时刻
li = []
for i in range(1000000):
    li.append("sxt")
a = "".join(li)
time04 = time.time()   #终止时刻
print("运算时间："+str(time04-time03))
# in /not in 关键字，判断某个字符(子字符串)是否存在于字符串中。
print("a" in "abc")
print("b" not in "bcd")
# 字符串的相关函数略

# 字符串的格式化
a = "名字是:{0},年龄是：{1}"
print(a.format("周文生",100)) # 第一种用法
c = "名字是{name}，年龄是{age}"
print(c.format(name="周文生",age=100))
# 填充与对齐略 ^、<、>分别是居中、左对齐、右对齐，后面带宽度 :号后面带填充的字符，只能是一个字符，不指定的话默认是用空格填充

# 可变字符串 在 Python 中，字符串属于不可变对象，不支持原地修改，如果需要修改其中的值，智能创建新的字符串对象。但是，
# 经常我们确实需要原地修改字符串，可以使用 io.StringIO 对象或 array 模块。
import io
a = "hello world"
sio = io.StringIO(a)
sio.seek(7)
sio.write("w")
print(sio.getvalue())









